#include <stdio.h>
#define MAXLINE 1000

int getline(char line[], int maxline);
void copyline(char to[], char from[]);

/* print longest line */
int main (int argc, char *argv[])
{
  int len;                      /* current line length */
  int max;                      /* maximum length seen so far */
  char line[MAXLINE];           /* current input line */
  char longest[MAXLINE];        /* longest line saved here */

  max = 0;
  while ((len = getline(line, MAXLINE)) > 0) {
    if (len > max) {
      max = len;
      copyline(longest, line);
    }
  }
  if (max > 0) {
    printf("%s", longest);
  }
  
  return 0;
}

/* getline: read a line into s, return length */
int getline(char s[], int length)
{
  int c, i;

  for (i = 0; i < length - 1 && (c = getchar()) != EOF && c!= '\n'; i++) {
    s[i] = c;
  }
  if (c == '\n') {
    s[i] = c;
    i++;
  }
  s[i] = '\0';

  return i;
}

/* copyline: copy `from' into `to'; assume to is big enough */
void copyline(char to[], char from[])
{
  int i = 0;

  while ((to[i] = from[i]) != '\0') {
    i++;
  }
}
